Implementations of the claimed invention generally may relate to schemes for encoding and/or decoding video information and, more particularly, to such schemes that employ deblocking filters in their video processing.
Video information may be organized within a frame or other video object (e.g., a video object plane (VOP)) in blocks. In some video encoding/decoding schemes, a block may include a (2×2, 4×4, 8×8, etc.) group of, for example, luma (i.e., Y) pixels. Similar data organization may also be reflected in chroma (i.e., U/V, or Cr/Cb) pixels. Blocks of luma and chroma video information may be further grouped into so-called macroblocks in some schemes. It should be noted, however, that the above sizes of blocks and macroblocks are purely exemplary, and other sizes and numbers may also be employed in various video encoding/decoding schemes.
Certain video encoding/decoding schemes may employ deblocking filters to smooth edges between adjacent blocks. Such deblocking filters may improve the appearance of decoded video data and may improve compression performance for encoded video data. Such filtering may be applied to vertical and/or horizontal edges of adjacent blocks of luma and/or chroma components. Some video schemes that employ deblocking filters may include, but are not limited to, Advanced Video Coding (AVC) (e.g., MPEG-4, part 10 and ITU-T Recommendation H.264), Windows Media Video 9 (WMV-9), and/or SMPTE's VC-1.
For some macroblocks, however, a deblocking filter may not operate on all possible vertical and horizontal edges within a macroblock. In such cases, an edge mask may be used to specify exactly which vertical edges and which horizontal edges will be filtered. Generating such edge masks for different macroblocks (or portions of macroblocks) may consume an undesirably long amount of time in a given decoding and/or encoding process.